撐了這麼多天的理論與安裝的前置作業,終於,我們可以來實際跑實驗拉!
專案的後端是用Django建設的,所以我們在使用服務得時候,可以很輕鬆透過瀏覽器去控制與觀看結果。接下來要跑兩個後端服務,一個是環境的服務,一個是agents的。
cd environment/frontend_server
python manage.py runserver
然後接著瀏覽器輸入網址到 http://localhost:8000/ 如果看到 "Your environment server is up and running," 就代表服務正常運行。另外,官方建議瀏覽器用Chrome 或 Safari,用 Firefox 或 Brave 可能會發生些問題。
接著要開始agents的服務。
cd reverie/backend_server
python reverie.py # 如果遇到 movementFolder bug,請參考下方
接著服務器會跳出 "Enter the name of the forked simulation: " 此時就可以來建立我們的AI agents了。 輸入:
# "Enter the name of the forked simulation: "
base_the_ville_isabella_maria_klaus
# "Enter the name of the new simulation: "
test-simulation
# "Enter option: " 跑多少回合,這邊直接跑 100, 1代表跑10秒
run 100
此時在網頁瀏覽器輸入 http://localhost:8000/simulator_home 就可以觀察看到社區的運作囉!這邊可以透過方向鍵去移動,整個模擬的觀察畫面。
最後如果要直接離開,可以在終極端輸入 exit,儲存則輸入 fin。
在跑 reverie.py 可能會出現bug,這邊我們要到 reverie.py 修改 401 行
curr_move_file = f"{sim_folder}/movement/{self.step}.json"
with open(curr_move_file, "w") as outfile:
outfile.write(json.dumps(movements, indent=2))
新增三行
curr_move_file = f"{sim_folder}/movement/{self.step}.json"
# ========= new =========
movementFolder = f"{sim_folder}/movement"
if not os.path.exists(movementFolder):
os.mkdir(movementFolder)
# =======================
with open(curr_move_file, "w") as outfile:
outfile.write(json.dumps(movements, indent=2))
如果你想重播看實驗過程,可以照著 http://localhost:8000/replay/(simulation-name)/(starting-time-step) 格式輸入,
也可以參考官方的實驗,在瀏覽器輸入 http://localhost:8000/replay/July1_the_ville_isabella_maria_klaus-step-3-20/1/
如果採用上面方式,你可能會觀察到智能體長得一樣,那是因為在一開始的時候,觀察實驗結果並沒有把這個考慮進去,也就是能跑就好,如果要解決這個問題可以參考以下的方式。
打開 reverie 的 compress_sim_storage.py,做編輯,把 compress 裡面的字串,換成你要壓縮的模擬事件名字,例如 -> compress("July1_the_ville_isabella_maria_klaus-step-3-9") 再執行檔案
python compress_sim_storage.py
這樣 environment/frontend_server/compressed_storage 底下就可以看到跳出 July1_the_ville_isabella_maria_klaus-step-3-9 的資料夾了!
接著開啟瀏覽器輸入該格式的URL http://localhost:8000/demo/(simulation-name)/(starting-time-step)/(simulation-speed) ,(simulation-speed)代表播放的速度
可以參考官方提供的過去實驗紀錄,輸入 http://localhost:8000/demo/July1_the_ville_isabella_maria_klaus-step-3-20/1/3/ 我們就可以看到完整實驗的過程囉!
可以點選人物的icon,追蹤人物目前的狀態。
到這邊,長達九篇的AI社區終於告一段落了!開源的generative_agents真的是很方便的框架,讓我們可以做許多模擬實驗,開源短短不到一個月,就有人用它做公司的模擬,真的是還蠻期待未來會有更多有趣的應用出現,不過我覺得整體的前提是建立在ChatGPT的語言模型下,如果未來能有客製化的語言模型,對話內容可以做得更口語化,應該會變得更吸引人,或更體現出人情味,不過這也代表,有很多AI相關的議題,也需要我們更深入的思考。